package com.learning.rpc.remoting;

import java.util.List;

/**
 * ClassName: Codec
 * Description: 编解码器。真正处理传输协议的编解码
 * Date: 2022/5/10 23:45 【需求编号】
 *
 * @author Sam Sho
 * @version V1.0.0
 */
public interface Codec {

    /**
     * 创建实例
     *
     * @return
     */
    Codec createInstance();

    /**
     * 编码
     *
     * @param message
     * @return
     * @throws Exception
     */
    byte[] encode(Object message) throws Exception;

    /**
     * 解码
     *
     * @param message
     * @return
     * @throws Exception
     */
    List<Object> decode(byte[] message) throws Exception;
}


